/// @file InterOpWriterHelper.h
/// @brief InterOpWriterHelper
/// @copyright Copyright (c) 2025  Hefei Jiushao Intelligent Technology Co., Ltd. All rights reserved.
/// @createtime 2025-02-19

#ifndef INTEROPWRITERHELPER_H
#define INTEROPWRITERHELPER_H

#include "common/constant.h"
#include <topology/TopoShape.hpp>
#include "lists.hxx"

AMCAX_EXCHANGE_NAMESPACE_BEGIN

namespace InterOp::WriterConvert
{

    void Convert(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertCompound(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertCompSolid(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertSolid(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertShell(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertFace(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertWire(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertEdge(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);

    void ConvertVertex(const AMCAX::TopoShape shape, ENTITY *parentEntity, ENTITY *subEntity);
}

AMCAX_EXCHANGE_NAMESPACE_END

#endif